home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 6
/
FM Towns Free Software Collection 6.iso
/
data
/
fapx
/
fapxfile.plp
< prev
next >
Wrap
Text File
|
1993-07-08
|
32KB
|
1,290 lines
/* 共通ルーチン */
/* ファイル名にワイルドカード(*,?)が含まれるかチェックする */
%wild {
[file1]
case(@nochar(file1)==0,{Yes},{im({No})},
{No},{case(@getchar(file1,1,1),
{*},{im({Yes})},{?},{im({Yes})},
,{im(@wild(@getchar(file1,2)))})});
};
/* 入力ファイル選択(ワイルドカード不可) */
%FILEsel0{
[MSG,TYP]
SNDMSG({erande_f.snd});footnote(MSG);
case(TYP={},{Yes},{OLDFILE:=@filesel},{No},{OLDFILE:=@filesel(TYP)});
case(OLDFILE={},{Yes},{im({})},
{No},
{
case (@wild(OLDFILE),
{Yes},{display({ワイルドカード指定はできません\n});
FILEsel0(MSG,TYP)},
{No},
{
case (@nochar(@getcdir)==3,
{Yes},{OLDFILE:=@getcdir|OLDFILE},
{No},{OLDFILE:=@getcdir|{\}|OLDFILE});
case (@filechk(OLDFILE),
{No},{SNDMSG({okasi_f.snd});
display(OLDFILE|{がありません\n});
FILEsel0(MSG,TYP)},
{Yes},{im(OLDFILE)});
});
});
};
/* 入力ファイル選択(ワイルドカード可) */
%FILEsel1{
[MSG,TYP]
SNDMSG({erande_f.snd});footnote(MSG);
case(TYP={},{Yes},{OLDFILE:=@filesel},
{No},{OLDFILE:=@filesel(TYP)});
case(OLDFILE={},{Yes},{im({})},
{No},
{
case(@wild(OLDFILE),
{Yes}, {case(@nochar(@getcdir)==3,
{Yes},{OLDFILE:=@getcdir|OLDFILE},
{No},{OLDFILE:=@getcdir|{\}|OLDFILE});
im(OLDFILE)},
{No}, {case(@nochar(@getcdir)==3,
{Yes},{OLDFILE:=@getcdir|OLDFILE},
{No},{OLDFILE:=@getcdir|{\}|OLDFILE});
case(@filechk(OLDFILE),
{No},
{SNDMSG({okasi_f.snd});
display(OLDFILE|{がありません\n});
FILEsel1(MSG,TYP)},
{Yes},{im(OLDFILE)});
}
);
});
};
/* ファイル基本操作 */
/* ファイル表示 */
%DISPLAY{
loop ({
case (@FILEsel0({表示するファイルを指定して下さい},)={},
{Yes},{im({No})},
{No},
{
footnote({ファイル表示 }|OLDFILE);
command({type }|OLDFILE);
loop ({
footnote({終了},{b});waitx();
case(@xtype,101,{im({No})},201,{im({No})},
,{im({Yes})});
});
im({Yes});
});
});
};
/* ファイルダンプ表示 */
%DUMP {
loop ({
case(@FILEsel0({16進表示するファイルを指定して下さい},)={},
{Yes},{im({No})},
{No},
{
footnote({ファイル16進表示 }|OLDFILE);
command({dump }|OLDFILE|{ /1});
loop ({
footnote({終了},{b});waitx();
case(@xtype,101,{im({No})},201,{im({No})},
,{im({Yes})});
});
im({Yes});
});
});
};
/* ファイルサイズ表示 */
%SIZE {
loop ({
case(@FILEsel1({サイズ表示するファイルを指定して下さい},)={},
{Yes},{im({No})},
{No},
{
footnote({ファイルサイズ表示 }|OLDFILE);
%cdir @getcdir;setcdir(CDIR);
command({txf -a -n -lcx -i }|OLDFILE);
setcdir(cdir);im({Yes});
});
});
};
/* EOFコード除去 */
%RMZ {
loop ({
case(@FILEsel1({EOFコード除去するファイルを指定して下さい},)
={},
{Yes},{im({No})},
{No},
{
footnote({EOFコード除去 }|OLDFILE);
%cdir @getcdir;setcdir(CDIR);
command({txf -a -n -rz -io }|OLDFILE);
setcdir(cdir);im({Yes});
});
});
};
/* ファイル削除 */
%DELETE {
loop ({
case(@FILEsel1({削除するファイルを指定して下さい},)={},
{Yes},{im({No})},
{No},
{
SNDMSG({kaknin_f.snd});
footnote({ファイル削除 }|OLDFILE);
select (OLDFILE|{を削除してもいいですか?},
Wtime4,,
{ は い },
{case (@tail(OLDFILE,{\})={*.*},
{Yes},{command({echo y|del }|OLDFILE)},
{No},{command({del }|OLDFILE)})},
{ いいえ },
);
im({Yes});
});
});
};
/* ファイル複写 */
%COPY {
%FILEsel2{
SNDMSG({erande_f.snd});
footnote({複写先のファイルを指定して下さい 複写元=}|OLDFILE);
NEWFILE:=@filesel;NEWDIR:=@getcdir;
case(@nochar(NEWDIR)==3,{No},{NEWDIR:=NEWDIR|{\}});
case(@wild(OLDFILE),{Yes},{NEWFILE:={*.*}});
case(NEWFILE={},{Yes},{NEWFILE:={*.*}});
NEWFILE:=NEWDIR|NEWFILE;
};
loop ({
case(@FILEsel1({複写元のファイルを指定して下さい},)={},
{Yes},{im({No})},
{No},
{
FILEsel2;
case(@filechk(NEWFILE),
{Yes},
{
SNDMSG({kaknin_f.snd});
footnote({ファイル複写 }|
OLDFILE|{ -> }|NEWFILE);
select ({複写先のファイルに上書き}|
{してもいいですか?},
Wtime4,,
{ は い },
{command({copy }|OLDFILE|{ }|NEWFILE)},
{ いいえ },
);
},
{No},{command({copy }|OLDFILE|{ }|NEWFILE)}
);
im({Yes});
});
});
};
/* ファイル移動 */
%MOVE {
%FILEsel2{
SNDMSG({erande_f.snd});
footnote({移動先のディレクトリへ移動し右クリックして下さい 移動元=}|
OLDFILE);
filesel;NEWDIR:=@getcdir;
case(@nochar(NEWDIR)==3,
{Yes},{NEWFILE:=NEWDIR|@tail(OLDFILE,{\})},
{No},{NEWFILE:=NEWDIR|{\}|@tail(OLDFILE,{\})});
};
loop ({
case(@FILEsel1({移動元のファイルを指定して下さい},)={},
{Yes},{im({No})},
{No},
{
FILEsel2;
var fileno [3];
case(@wild(OLDFILE),
{No},
{case (@filechk(NEWFILE),
{Yes},
{
SNDMSG({kaknin_f.snd});
footnote({ファイル移動 }|
OLDFILE|{ -> }|NEWFILE);
select ({移動先のファイルに上書き}|
{してもいいですか?},
Wtime4,,
{ は い },{fileno:={1}},
{ いいえ },{fileno:={0}});
},
{No},{fileno:={1}});
},
{Yes},{NEWFILE:=@body(NEWFILE,,{\})|{\*.*};
fileno:={n}}
);
case(fileno,
{1},
{
command({del }|TEMP2|{_moptemp.tmp});
command({copy }|OLDFILE|{ }|NEWFILE|
{ > }|TEMP2|{_moptemp.tmp});
case (@read(TEMP2|{_moptemp.tmp}),
{ 1 個のファイルを}|
{コピーしました.\n},
{command({del }|OLDFILE)});
},
{n},
{
command({del }|TEMP2|{_moptemp.tmp});
command({copy }|OLDFILE|{ }|NEWFILE|
{ > }|TEMP2|{_moptemp.tmp});
var N [4];
N:=0;
loop ({
N:=N+1;
%f1 @read(TEMP2|{_moptemp.tmp},N,1);
case(@tail(f1,{個のファイルを}),
{コピーしました.\n},
{im({No})},
,
{
case(@head(f1,{\n})<>
TEMP2|{_MOPTEMP.TMP},
{Yes},
{command({del }|
@head(f1,{\n}))});
im({Yes});
});
});
},
{0},
);
im({Yes});
});
});
};
/* ファイル比較 */
%COMPARE{
%FILEsel2{
SNDMSG({erande_f.snd});
footnote({比較先のファイルを指定して下さい 比較元=}|OLDFILE);
NEWFILE:=@filesel;NEWDIR:=@getcdir;
case(NEWFILE,{},{im({})},,
{
case(@nochar(NEWDIR)==3,
{Yes},{NEWFILE:=NEWDIR|NEWFILE},
{No},{NEWFILE:=NEWDIR|{\}|NEWFILE});
case(@filechk(NEWFILE),
{No},
{SNDMSG({okasi_f.snd});
display(NEWFILE|{ がありません\n});
FILEsel2},
{Yes},{im(NEWFILE)});
});
};
loop ({
case(@FILEsel0({比較元のファイルを指定して下さい},)={},
{Yes},{im({No})},
{No},
{
case(@FILEsel2={},{Yes},{im({No})},
{No},
{
footnote({ファイル比較 }|OLDFILE|
{ <-> }|NEWFILE);
command({fc }|OLDFILE|{ }|NEWFILE);
loop ({
footnote({終了},{b});
waitx();
case(@xtype,101,{im({No})},
201,{im({No})},,{im({Yes})});
});
im({Yes});
},
{No},{im({No})}
);
});
});
};
/* ファイル名変更 */
%RENAME {
%FILEsel2{
SNDMSG({nyuryo_f.snd});
footnote({新ファイル名を入力して下さい 旧ファイル名=}|OLDFILE);
NEWFILE:=@input({新ファイル名を入力して下さい},,@tail(OLDFILE,{\}));
im(NEWFILE);
};
loop ({
case(@FILEsel1({ファイル名を変更するファイルを}|
{指定して下さい},)={},
{Yes},{im({No})},
{No},
{
case(@FILEsel2={},
{Yes},{im({No})},
{No},
{
footnote({ファイル名変更 }|
OLDFILE|{ -> }|NEWFILE);
command({ren }|OLDFILE|{ }|NEWFILE);
im({Yes});
});
});
});
};
/* 全ファイル削除 */
%DELall {
SNDMSG({erande_f.snd});
footnote({全ファイル削除するディレクトリへ移動して}|
{右クリックして下さい});
filesel;OLDDIR:=@getcdir;SNDMSG({kaknin_f.snd});
case(@nochar(OLDDIR)==3,
{Yes},{footnote({全ファイル削除 }|OLDDIR|{*.*})},
{No},{footnote({全ファイル削除 }|OLDDIR|{\*.*})});
select (OLDDIR|{の全ファイルを削除してもいいですか?},
Wtime4,,
{ は い },
{setcdir(OLDDIR);command({echo y|del *.*})},
{ いいえ },
);
};
/* ファイル一覧表示 */
%DIR {
loop ({
case(@FILEsel1({一覧表示するファイルを指定してください },)={},
{Yes},
{
OLDDIR:=@getcdir;SNDMSG({kaknin_f.snd});
footnote({ファイル一覧表示 }|OLDDIR);
select (OLDDIR|{の全ファイル一覧表示ですか?},
Wtime4,,
{全ファイル一覧表示},
{
command({dir }|OLDDIR);
loop ({
footnote({終了},{b});
waitx();
case(@xtype,101,{im({No})},
201,{im({No})},,{im({Yes})});
});
im({Yes});
},
{ 取 消 },
);
},
{No},
{
footnote({ファイル一覧表示 }|OLDFILE);
command({dir }|OLDFILE);
loop ({
footnote({終了},{b});
waitx();
case (@xtype,
101,{im({No})},201,{im({No})},
,{im({Yes})});
});
im({Yes});
});
});
};
/* ファイル編集 */
%EDIT {
[flag]
var memono [1];
%FILEsel2{
[MSG,TYP]
SNDMSG({erande_f.snd});footnote(MSG);
case(TYP={},
{Yes},{NEWFILE:=@filesel},
{No},{NEWFILE:=@filesel(TYP)});
case(NEWFILE={},{Yes},{im({})},
{No},
{
case(@wild(NEWFILE),
{Yes},
{
display({ワイルドカード指定はできません\n});
FILEsel2(MSG,TYP);
},
{No},
{
case(@nochar(@getcdir)==3,
{Yes},{NEWFILE:=@getcdir|NEWFILE},
{No},{NEWFILE:=@getcdir|{\}|NEWFILE});
im(NEWFILE);
});
});
};
%save {
footnote({メモ}|memono|{を保存します});
%file @FILEsel2({保存ファイル名を指定してください},);
case (file<>{},
{Yes},
{
CloseAllMemo;delfile(file);mwrite(file,memono);
mopen(memono);mclose(3);im({No});
},
{No},{im({Yes})}
);
};
%update{
footnote(OLDFILE|{を更新しています});
CloseAllMemo;delfile(OLDFILE);
mwrite(OLDFILE,memono);mopen(memono);mclose(3);im({No});
};
%cancel {
SNDMSG({kaknin_f.snd});footnote({文書編集を取消しますか?});
select({文書編集を取消しますか?},
Wtime4,{footnote({});im({Yes})},
{ は い },
{
CloseAllMemo;delfile(TEMP2|{_mopmemo.bak});
mwrite(TEMP2|{_mopmemo.bak},memono);
mopen(memono);mclose(3);footnote({});im({No});
},
{ いいえ },{footnote({});im({Yes})}
);
};
%rewrite{
footnote({編集中のメモ内容を清書しています});
CloseAllMemo;%cdir @getcdir;setcdir(CDIR);
delfile(TEMP2|{_moptext.tmp});
delfile(TEMP2|{_moptext.new});
mwrite(TEMP2|{_moptext.tmp},memono);
dispoff(!DEBUG);
command({txf -f -i }|TEMP2|{_moptext.tmp}|
{ -o }|TEMP2|{_moptext.new});
dispoff({No});
case(@filechk(TEMP2|{_moptext.new}),
{Yes},
{
mclear(memono);mread(TEMP2|{_moptext.new},memono);
mopen(memono,0,21,639,459,{w});
},
{No},
{
display({清書機能には TXF.EXE がパスの通った}|
{ディレクトリに必要です\n});
wait(2);mopen(memono,0,21,639,459,{w});
});
setcdir(cdir);im({Yes});
};
%MEMONO @mlast;
case(MEMONO==9,
{Yes},
{
footnote({メモ9を利用してファイル編集を行います});
SNDMSG({kaknin_f.snd});
select({メモ9を利用してファイル編集を行います},
Wtime4,{memono:=0},
{ は い },{memono:=9},{ いいえ },{memono:=0});
},
{No},{memono:=MEMONO+1}
);
case (memono>0&&flag==1,
{Yes},
{
loop ({
CloseAllMemo;
case(@FILEsel0({編集するファイルを選択}|
{してください},)<>{},
{Yes},
{
mclear(memono);mread(OLDFILE,memono);
mopen(memono,0,21,639,459,{w});
loop ({
footnote({更新取消清書UPLD},{b});
waitx();
case (@xtype,
101,update,201,update,
102,cancel,202,cancel,
103,rewrite,203,rewrite,
104,{UP1(memono)},
204,{UP1(memono)},
,{im({Yes})});
});
im({Yes});
},
{No},{im({No})}
);
});
},
{No}, /* 新規ファイル編集の場合 */
{
case(memono>0,
{Yes},
{
CloseAllMemo;madd(memono,{\n});mclear(memono);
mopen(memono,0,21,639,459,{w});
loop ({
footnote({保存取消清書UPLD},{b});waitx();
case (@xtype,
101,save,201,save,
102,cancel,202,cancel,
103,rewrite,203,rewrite,
104,{UP1(memono)},204,{UP1(memono)},
,{im({Yes})});
});
});
});
};
/* オートアップロード制御ファイル作成処理 */
%UP1 {
[memono]
%up2 {
footnote({メモの保存を行いますか?});SNDMSG({erande_f.snd});
select({メモの保存をおこないますか?},
Wtime4,{im({Yes})},
{ ファイルに保存して終了 },{save},
{ファイルに保存せずに終了},
{CloseAllMemo;mopen(memono);mclose(3);im({No})},
{ 編集画面に戻る },{im({Yes})});
};
footnote({アップロード先は?});SNDMSG({erande_f.snd});
select({アップロード先は?},
Wtime4,{im({Yes})},
{ テキストメール },{AUTOmail;up2},
{ フォーラム },{AUTOforum;up2},
{シスオペ宛メール},{AUTOsmail;up2},
{ ホームパーティ },{AUTOhp;up2},
{ パティオ },{AUTOpatio;up2},
{ プロフィール },{AUTOprof;up2},
{ 取 消 },{im({Yes})});
};
/* テキストメールアップ制御文作成 */
%AUTOmail{
footnote({テキストメール送信制御文作成});
var mail [127];
var title [40];
var date [6];
var ok [2];
loop ({
SNDMSG({nyuryo_f.snd});
%a @plane( {cテキストメール送信\n}|
{t 送信先ID /\n}|
{t タイトル /xxxxxxxxxxxxxxxxxxxx}|
{xxxxxxxxxxxxxxxxxxxx\n}|
{t 送信日付指定 /xxxxxx\n}|
{s / 登録 / 取消 \n},
mail,title,date);
mail:= @head(@getline(a,1,1),{\n});
title:= @head(@getline(a,2,1),{\n});
date:= @head(@getline(a,3,1),{\n});
ok:= @head(@getline(a,4,1),{\n});
});
case(ok==1,{Yes},
{
%file @crefile(UP,{UP});CloseAllMemo;
mwrite(UP2|file,memono);mopen(memono,0,21,639,459,{w});
%cntl {mail=}|mail|{;}|{date=}|date|{;}|
{file=}|UP2|file|{;}|{title=}|title;
write(UP2|{_mopres.ctl},cntl|{\n});
});
};
/* フォーラム書き込み制御文作成 */
%AUTOforum{
footnote({フォーラムの会議室への発言制御文作成});
var forum [8];
var mes [2];
var reply [5];
var title [40];
var ok [2];
loop ({
SNDMSG({nyuryo_f.snd});
%a @plane( {cフォーラムの会議室への発言\n}|
{t フォーラム名 /xxxxxxxx\n}|
{t 会議室番号 /xx\n}|
{tコメント元番号/xxxxx\n}|
{t タイトル /xxxxxxxxxxxxxxxxxxxx}|
{xxxxxxxxxxxxxxxxxxxx\n}|
{s / 登録 / 取消 \n},
forum,mes,reply,title);
forum:= @head(@getline(a,1,1),{\n});
mes:= @head(@getline(a,2,1),{\n});
reply:= @head(@getline(a,3,1),{\n});
title:= @head(@getline(a,4,1),{\n});
ok:= @head(@getline(a,5,1),{\n});
});
case(ok==1,{Yes},
{
%file @crefile(UP,{UP});CloseAllMemo;
mwrite(UP2|file,memono);mopen(memono,0,21,639,459,{w});
%cntl {forum=}|forum|{;}|{mes=}|mes|{;}|{reply=}|reply|{;}|
{file=}|UP2|file|{;}|{title=}|title;
write(UP2|{_mopres.ctl},cntl|{\n});
});
};
/* シスオペ宛メールアップ制御文作成 */
%AUTOsmail{
footnote({シスオペ宛メール送信制御文作成});
var forum [8];
var title [40];
var ok [2];
loop ({
SNDMSG({nyuryo_f.snd});
%a @plane( {cシスオペ宛メール送信\n}|
{t フォーラム名 /xxxxxxxx\n}|
{t タイトル /xxxxxxxxxxxxxxxxxxxx}|
{xxxxxxxxxxxxxxxxxxxx\n}|
{s / 登録 / 取消 \n},
forum,title);
forum:= @head(@getline(a,1,1),{\n});
title:= @head(@getline(a,2,1),{\n});
ok:= @head(@getline(a,3,1),{\n});
});
case(ok==1,{Yes},
{
%file @crefile(UP,{UP});CloseAllMemo;
mwrite(UP2|file,memono);mopen(memono,0,21,639,459,{w});
%cntl {sysmail=}|forum|{;}|{file=}|UP2|file|{;}|
{title=}|title;
write(UP2|{_mopres.ctl},cntl|{\n});
});
};
/* ホームパーティ書き込み制御文作成 */
%AUTOhp {
footnote({ホームパーティへの発言制御文作成});
var hp [8];
var pass [8];
var title [40];
var ok [2];
loop ({
SNDMSG({nyuryo_f.snd});
%a @plane( {cホームパーティへの発言\n}|
{t HPのID /xxxxxxxx\n}|
{t パスワード /xxxxxxxx\n}|
{s / 検索 \n}|
{t タイトル /xxxxxxxxxxxxxxxxxxxx}|
{xxxxxxxxxxxxxxxxxxxx\n}|
{s / 登録 / 取消 \n},
hp,pass,title);
hp:= @head(@getline(a,1,1),{\n});
pass:= @head(@getline(a,2,1),{\n});
%scan @head(@getline(a,3,1),{\n});
title:= @head(@getline(a,4,1),{\n});
ok:= @head(@getline(a,5,1),{\n});
case(scan==1,{Yes},
{pass:=@tail(NIFTY,{/}|hp|{/},{/});im({Yes})});
case(ok==1,{Yes},
{
%file @crefile(UP,{UP});CloseAllMemo;
mwrite(UP2|file,memono);mopen(memono,0,21,639,459,{w});
%cntl {hp=}|hp|{;}|{pass=}|pass|{;}|
{file=}|UP2|file|{;}|{title=}|title;
write(UP2|{_mopres.ctl},cntl|{\n});im({No});
});
});
};
/* パティオ書き込み制御文作成 */
%AUTOpatio{
footnote({パティオへの発言制御文作成});
var patio [8];
var pass [8];
var mes [3];
var reply [5];
var title [40];
var ok [2];
reply:={1};
loop ({
SNDMSG({nyuryo_f.snd});
%a @plane( {cパティオへの発言\n}|
{tパティオのID/xxxxxxxx\n}|
{t パスワード /xxxxxxxx\n}|
{s / 検索 \n}|
/* {t 会議室番号 /xxxxxxxx\n}| */
{tコメント元番号/xxxxxxxx\n}|
{t タイトル /xxxxxxxxxxxxxxxxxxxx}|
{xxxxxxxxxxxxxxxxxxxx\n}|
{s / 登録 / 取消 \n},
patio,pass,mes,reply,title);
patio:= @head(@getline(a,1,1),{\n});
pass:= @head(@getline(a,2,1),{\n});
%scan @head(@getline(a,3,1),{\n});
/* mes:= @head(@getline(a,4,1),{\n}); */
reply:= @head(@getline(a,4,1),{\n});
title:= @head(@getline(a,5,1),{\n});
ok:= @head(@getline(a,6,1),{\n});
case(scan==1,{Yes},
{pass:=@tail(NIFTY,{/}|patio|{/},{/});
im({Yes})});
case(ok==1,{Yes},
{
%file @crefile(UP,{UP});CloseAllMemo;
mwrite(UP2|file,memono);mopen(memono,0,21,639,459,{w});
%cntl {patio=}|patio|{;}|{pass=}|pass|{;}|
{mes=}|{1}|{;}|{reply=}|reply|{;}|
{file=}|UP2|file|{;}|{title=}|title;
write(UP2|{_mopres.ctl},cntl|{\n});im({No});
});
});
};
/* プロフィール情報書き込み制御文作成 */
%AUTOprof{
footnote({プロフィール情報登録制御文作成});
var ok [2];
loop ({
%a @plane( {cプロフィール情報登録\n}|
{s / 登録 / 取消 \n}
);
ok:=@head(@getline(a,1,1),{\n});
});
case(ok==1,{Yes},
{
%file @crefile(UP,{UP});CloseAllMemo;
mwrite(UP2|file,memono);mopen(memono,0,21,639,459,{w});
%cntl {profile=}|{;}|{file=}|UP2|file|{;};
write(UP2|{_mopres.ctl},cntl|{\n});
});
};
/* ファイル実行 */
%EXEC {
var PARAM [64];
%execfile{
SNDMSG({nyuryo_f.snd});
PARAM:=@input(OLDFILE|{ のパラメータを入力して下さい});
footnote({ファイル実行中 }|OLDFILE);
command(OLDFILE|{ }|PARAM);im({Yes});
};
loop ({
case(@FILEsel0({実行するファイルを指定して下さい},)={},
{Yes},{im({No})},
{No},
{case(@tail(OLDFILE,{.}),
{COM},execfile,{EXE},execfile,{BAT},execfile,
,{SNDMSG({okasi_f.snd});
display(OLDFILE|{ は実行できません});
im({Yes})});
});
});
};
/* NAPLPSファイル表示 */
%NAPLPS {
loop ({
case(@FILEsel0({NAPLPSデータファイルを指定して下さい},{NPB})
={},
{Yes},{im({No})},
{No},
{
footnote({NAPLPSファイル表示 }|OLDFILE);
naplps(OLDFILE);
loop ({
footnote({終了},{b});waitx();
case(@xtype,101,{napend;im({No});},
201,{napend;im({No});},,{im({Yes})});
});
im({Yes});
});
});
};
/* ファイル応用操作 (lha,ish,diet) */
/* ファイル凍結 */
%LHAarc {
%FILEsel2{
SNDMSG({nyuryo_f.snd});
footnote({書庫ファイル名を入力して下さい 元ファイル=}|OLDFILE);
NEWFILE:=@filesel({LZH});NEWDIR:=@getcdir;
case(NEWFILE<>{},
{Yes},{case(@nochar(NEWDIR)==3,
{Yes},{NEWFILE:=NEWDIR|NEWFILE},
{No},{NEWFILE:=NEWDIR|{\}|NEWFILE})});
im(NEWFILE);
};
loop ({
case(@FILEsel1({圧縮凍結するファイルを指定して下さい},)={},
{Yes},{im({No})},
{No},
{
case(@FILEsel2={},{Yes},{im({No})},
{No},
{
footnote({ファイル圧縮凍結処理中 }|
OLDFILE|{ -> }|NEWFILE);
command({lha u }|NEWFILE|{ }|OLDFILE);
im({Yes});
});
});
});
};
/* ファイル解凍 */
%LHAext {
%FILEsel2{
SNDMSG({erande_f.snd});
footnote({解凍先のディレクトリへ移動し右クリックして下さい 解凍元=}|
OLDFILE);
%dmy @filesel;NEWDIR:=@getcdir;
case(@nochar(NEWDIR)==3,
{Yes},{NEWFILE:=NEWDIR|@tail(OLDFILE,{\})},
{No},{NEWFILE:=NEWDIR|{\}|@tail(OLDFILE,{\})});
};
loop ({
case(@FILEsel0({解凍する *.LZH ファイルを指定して下さい},{LZH})
={},
{Yes},{im({No})},
{No},
{
FILEsel2;footnote({ファイル解凍処理中 }|OLDFILE);
command({lha x }|OLDFILE);im({Yes});
});
});
};
/* 凍結ファイル内容表示 */
%LHAlst {
loop ({
case(@FILEsel0({内容表示する *.LZH ファイルを}|
{指定して下さい},{LZH})={},
{Yes},{im({No})},
{No},
{
footnote({凍結ファイル内容表示中 }|OLDFILE);
command({lha l }|OLDFILE);im({Yes});
});
});
};
/* ファイル石化 */
%ISHstr {
loop ({
case(@FILEsel1({*.ISH ファイルに変換するファイルを}|
{指定して下さい},)={},
{Yes},{im({No})},
{No},
{
case(OLDFILE={},{Yes},{im({No})},
{No},
{
footnote({ISHファイル変換処理中 }|OLDFILE);
command({ish }|OLDFILE|{ /ss});im({Yes});
});
});
});
};
/* ファイル解石 */
%ISHres {
loop ({
case(@FILEsel1({復元する *.ISH ファイルを指定して下さい},{ISH})
={},
{Yes},{im({No})},
{No},
{
case(OLDFILE={},{Yes},{im({No})},
{No},
{
footnote({ISHファイル復元処理中 }|OLDFILE);
command({ish }|OLDFILE|{ /r});im({Yes});
});
});
});
};
/* ダイエット処理 */
%DIETarc{
loop ({
case(@FILEsel1({ダイエットするファイルを指定して下さい},)={},
{Yes},{im({No})},
{No},
{
case(OLDFILE={},{Yes},{im({No})},
{No},
{
footnote({ダイエット処理中 }|OLDFILE);
command({diet }|OLDFILE);im({Yes});
});
});
});
};
/* ダイエットファイル復元 */
%DIETres{
loop ({
case(@FILEsel1({復元するダイエットファイルを}|
{指定して下さい},)={},
{Yes},{im({No})},
{No},
{
case(OLDFILE={},{Yes},{im({No})},
{No},
{
footnote({ダイエットファイル復元処理中 }|
OLDFILE);
command({diet -ra }|OLDFILE);im({Yes});
});
});
});
};
/* 差分ファイル作成処理 */
%BDIFF {
%FILEsel2{
SNDMSG({nyuryo_f.snd});
footnote({新ファイル名を入力して下さい 旧ファイル=}|OLDFILE);
NEWFILE:=@filesel;NEWDIR:=@getcdir;
case(NEWFILE<>{},
{Yes},{case(@nochar(NEWDIR)==3,
{Yes},{NEWFILE:=NEWDIR|NEWFILE},
{No},{NEWFILE:=NEWDIR|{\}|NEWFILE})});
im(NEWFILE);
};
loop ({
case(@FILEsel0({差分を作成する旧ファイルを指定して下さい},)={},
{Yes},{im({No})},
{No},
{
case(@FILEsel2={},{Yes},{im({No})},
{No},
{
footnote({ファイル差分作成処理中 }|
OLDFILE|{ -> }|NEWFILE);
command({BDIFF }|OLDFILE|{ }|NEWFILE);
im({Yes});
});
});
});
};
/* 差分ファイル復元処理 */
%BUPDATE{
loop ({
case(@FILEsel0({差分ファイルを指定して下さい},{BDF})={},
{Yes},{im({No})},
{No},
{
footnote({ファイル差分更新処理中 差分ファイル=}|OLDFILE);
command({BUPDATE }|OLDFILE);im({Yes});
});
});
};
/* ディレクトリ基本操作 */
/* ツリー表示 */
%TREE {
SNDMSG({erande_f.snd});
footnote({ツリー表示するディレクトリへ移動して右クリックして下さい});
filesel;OLDDIR:=@getcdir;footnote({ツリー表示中 }|OLDDIR);
command({tree }|OLDDIR);
loop ({
footnote({終了},{b});waitx();
case(@xtype,101,{im({No})},201,{im({No})},,{im({Yes})});
});
};
/* ディレクトリ作成 */
%MKDIR {
SNDMSG({erande_f.snd});
footnote({作成するディレクトリ名を指定して下さい});
NEWDIR:=@filesel;OLDDIR:=@getcdir;
case(@nochar(OLDDIR)==3,
{Yes},{NEWDIR:=OLDDIR|NEWDIR},
{No},{NEWDIR:=OLDDIR|{\}|NEWDIR});
mkdir2(NEWDIR);
};
/* ディレクトリ削除 */
%RMDIR {
SNDMSG({erande_f.snd});
footnote({削除するディレクトリへ移動して右クリックして下さい});
filesel;OLDDIR:=@getcdir;
case(@nochar(OLDDIR)==3,
{Yes},
{
SNDMSG({okasi_f.snd});
display({ルートディレクトリは削除できません\n});
},
{No},
{
SNDMSG({kaknin_f.snd});
footnote({削除ディレクトリ=}|OLDDIR);
select ({ディレクトリ }|OLDDIR|{ を削除してもいいですか?},
Wtime4,,
{ は い },
{
setcdir2(@body(OLDDIR,,{\}));
command({rmdir }|@tail(OLDDIR,{\}));
},
{ いいえ },
);
});
};
/* ディレクトリ複写 */
%DIRCOPY{
%FILEsel1{
SNDMSG({erande_f.snd});
footnote({複写元のディレクトリへ移動して右クリックして下さい});
filesel;OLDDIR:=@getcdir;
};
%FILEsel2{
SNDMSG({erande_f.snd});
footnote({複写先のディレクトリは? 複写元=}|OLDDIR);
filesel;NEWDIR:=@getcdir;
};
FILEsel1;display({複写元ディレクトリ }|OLDDIR|{\n});
wait(1);FILEsel2;SNDMSG({kaknin_f.snd});
footnote({ディレクトリ複写 }|OLDDIR|{ -> }|NEWDIR);
select ({ディレクトリ複写を実行してもいいですか?},
Wtime4,,
{ は い },{command({xcopy }|OLDDIR|{ }|NEWDIR|{ /s /e})},
{ いいえ },
);
};
/* フロッピィディスク操作 */
/* フロッピィディスク初期化 */
%FORMAT {
var DEVICE [2];
var FPDtype [9];
var OPT [2];
var LABEL [11];
LABEL:={};
loop ({
SNDMSG({erande_f.snd});
footnote({初期化するフロッピィディスク装置を選んで下さい});
select ({初期化するフロッピィディスク装置を選んで下さい},
Wtime4,{DEVICE:={}},
{ A },{DEVICE:={A:}},
{ B },{DEVICE:={B:}},
{ 終 了 },{DEVICE:={}});
case(DEVICE={},{Yes},{im({No})},
{No},
{
SNDMSG({erande_f.snd});
footnote({フロッピィディスクの種類を選んで下さい});
select ({フロッピィディスクの種類を選んで下さい},
Wtime4,{FPDtype:={2HD/1.2MB}},
{2HD/1.2MB},
{FPDtype:={2HD/1.2MB};OPT:={}},
{2DD/640KB},
{FPDtype:={2DD/640KB};OPT:={/8}},
{2DD/720KB},
{FPDtype:={2DD/720KB};OPT:={/9}}
);
SNDMSG({nyuryo_f.snd});
footnote({ボリュームラベル名を入力して下さい});
LABEL:=@input({ボリュームラベル名を入力して下さい},,
LABEL);
case(@nochar(LABEL)>11,
{Yes},{LABEL:=@getchar(LABEL,1,11)});
SNDMSG({kaknin_f.snd});
footnote({DEVICE=}|DEVICE|{ TYPE=}|FPDtype|
{ LABEL=}|LABEL);
select({初期化を行います}|
{ フロッピィをセットして下さい},
Wtime4,,
{ O K },
{
footnote({フロッピィディスク初期化中 }|
DEVICE);
delfile(TEMP2|{_mopform.tmp});
write(TEMP2|{_mopform.tmp},{\n}|LABEL|{\nN\n});
command({type }|TEMP2|{_mopform.tmp}|
{|format }|DEVICE|{ }|OPT);
},
{ N G },
);
im({Yes});
});
});
};
/* フロッピィディスク複写 */
%DISKCOPY{
var DEVICE1 [2];
var DEVICE2 [2];
loop ({
SNDMSG({erande_f.snd});
footnote({複写元と複写先を選んで下さい});
select({複写元と複写先を選んで下さい},
Wtime4,{DEVICE1:={}},
{ A → B },{DEVICE1:={A:};DEVICE2:={B:}},
{ B → A },{DEVICE1:={B:};DEVICE2:={A:}},
{ 終 了 },{DEVICE1:={}});
case(DEVICE1={},{Yes},{im({No})},
{No},
{
SNDMSG({kaknin_f.snd});
footnote({フロッピィディスク複写 }|
DEVICE1|{ -> }|DEVICE2);
select ({複写を行います}|
{ フロッピィをセットして下さい},
Wtime4,,
{ O K },
{
delfile(TEMP2|{_mopdkcp.tmp});
write(TEMP2|{_mopdkcp.tmp},{\nN\n});
command({type }|TEMP2|{_mopdkcp.tmp}|
{|diskcopy }|DEVICE1|{ }|DEVICE2);
},
{ N G },
);
im({Yes});
});
});
};
/* フロッピィディスク比較 */
%DISKCOMP{
loop ({
SNDMSG({kaknin_f.snd});
footnote({フロッピィディスク比較 A: <-> B:});
select ({比較を行います フロッピィをセットして下さい},
Wtime4,,
{ O K },
{
delfile(TEMP2|{_mopdkcm.tmp});
write(TEMP2|{_mopdkcm.tmp},{\nN\n});
command({type }|TEMP2|{_mopdkcm.tmp}|
{|diskcomp A: B:});
im({Yes});
},
{ 終 了 },{im({No})}
);
});
};
/* コマンドシェル実行 */
%COMMAND{
footnote({コマンド実行モード中 EXIT<cr>と入力すると終了します});
command({command.com});
};
/* 詳細メニュー */
/* ファイル基本操作の選択 */
%FILEman1{
loop ({
SNDMSG({erande_f.snd});
footnote({ファイル基本操作の処理を選択して下さい});
select({ファイル基本操作メニュー},
Wtime4,{im({No})},
{ファイル表示 -type },{DISPLAY;im({Yes})},
{ファイル16進表示 =DUMP },{DUMP;im({Yes})},
{ファイルサイズ >TXF -lcx },{SIZE;im({Yes})},
{ファイル複写 -copy },{COPY;im({Yes})},
{ファイル移動 -copy&del },{MOVE;im({Yes})},
{ファイル名変更 -rename },{RENAME;im({Yes})},
{ファイル比較 =FC },{COMPARE;im({Yes})},
{ファイル削除 -del },{DELETE;im({Yes})},
{全ファイル削除 -del *.* },{DELall;im({Yes})},
{ファイル一覧表示 -dir },{DIR;im({Yes})},
{EOFコード除去 >TXF -rz },{RMZ;im({Yes})},
{NAPLPS表示 - },{NAPLPS;im({Yes})},
{ 終 了 },{im({No})});
});
};
/* ファイル応用操作の選択 */
%FILEman2{
loop ({
SNDMSG({erande_f.snd});
footnote({ファイル応用操作の処理を選択して下さい});
select({ファイル応用操作メニュー},
Wtime4,{im({No})},
{ファイル圧縮凍結 >LHA u },{LHAarc;im({Yes})},
{ファイル解凍 >LHA x },{LHAext;im({Yes})},
{凍結ファイル一覧 >LHA l },{LHAlst;im({Yes})},
{ファイル石化 >ISH /s },{ISHstr;im({Yes})},
{ファイル解石 >ISH /r },{ISHres;im({Yes})},
{ファイル圧縮 >DIET },{DIETarc;im({Yes})},
{ファイル復元 >DIET -ra },{DIETres;im({Yes})},
{ファイル差分作成 >BDIFF },{BDIFF;im({Yes})},
{ファイル差分更新 >BUPDATE },{BUPDATE;im({Yes})},
{ 終 了 },{im({No})});
});
};
/* ディレクトリ操作の選択 */
%DIRman {
loop ({
SNDMSG({erande_f.snd});
footnote({ディレクトリ操作の処理を選択して下さい});
select({ディレクトリ操作メニュー},
Wtime4,{im({No})},
{ツリー表示 =TREE },{TREE;im({Yes})},
{ディレクトリ作成 -mkdir },{MKDIR;im({Yes})},
{ディレクトリ削除 -rmdir },{RMDIR;im({Yes})},
{ディレクトリ複写 =XCOPY },{DIRCOPY;im({Yes})},
{ 終 了 },{im({No})});
});
};
/* フロッピィディスク操作の選択 */
%DISKman{
loop ({
SNDMSG({erande_f.snd});
footnote({フロッピィディスク操作の処理を選択して下さい});
select({フロッピィディスク操作メニュー},
Wtime4,{im({No})},
{フロッピィ初期化 =FORMAT },{FORMAT;im({Yes})},
{フロッピィ複写 =DISKCOPY },{DISKCOPY;im({Yes})},
{フロッピィ比較 =DISKCOMP },{DISKCOMP;im({Yes})},
{ 終 了 },{im({No})});
});
};
/* ファイル操作メインメニュー */
/* 設定する情報の選択 */
%FAPXFILE{
loop ({
SNDMSG({erande_f.snd});
footnote({ファイル操作を選択して下さい});
select({ファイル操作メインメニュー},
Wtime4,{im({No})},
{ ファイル基本操作 },{FILEman1;im({Yes})},
{ 応用操作(lha,ish,diet,bdiff) },{FILEman2;im({Yes})},
{ ディレクトリ操作 },{DIRman;im({Yes})},
{ フロッピィディスク操作 },{DISKman;im({Yes})},
{ 既存ファイル編集 },{EDIT(1);im({Yes})},
{ 新規ファイル編集 },{EDIT(0);im({Yes})},
{ ファイル実行 },{EXEC;im({Yes})},
{ コマンド直接実行 },{COMMAND;im({Yes})},
{ FAPX v}|VerLev|{の説明 },
{setcdir(CDIR);#FAPXHELP.PLP;im({Yes})},
{ 終 了 },{im({No})});
});
};
/* 作業領域定義 */
var OLDFILE [64];
var NEWFILE [64];
var OLDDIR [64];
var NEWDIR [64];
FAPXFILE;